package com.itlong.cloud.property.dao;


import com.itlong.cloud.POJO.PO.SmartCardFaceTimePullInfoPO;
import com.itlong.cloud.POJO.PO.TimeTaskAuthDeviceAddressInfoPO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <desc>
 *     设备地址变更影响权限定时任务持久层对象
 * </desc>
 *
 * @createDate 2017/9/21
 */
@Mapper
@Repository
public interface ITimeTaskAuthDeviceAddressInfoDao extends IAbstractBaseDao<TimeTaskAuthDeviceAddressInfoPO> {

    /**
     * <desc>
     *      添加电梯
     * <desc/>
     * @param   params  bean转换层map后的参数集
     * @return  添加数量
     * @author Biao.R
     * @createDate 2017/9/21
     */
    Integer save(Map<String, Object> params);

    /**
     * <desc>
     *      更新
     * <desc/>
     * @param   params  bean转换层map后的参数集
     * @return  更新数量
     * @author Biao.R
     * @createDate 2017/9/26
     */
    Integer update(Map<String, Object> params);

    /**
     * <desc>
     *      根据参数查询设备地址设变更纪录表
     * <desc/>
     * @param   params   查询参数
     * @return  设备地址设变更纪集合
     * @author Biao.R
     * @createDate 2018/2/7
     */
    List<TimeTaskAuthDeviceAddressInfoPO> getNotFreshAddrByParams(Map<String, Object> params);

    /**
     * <desc>
     *      处理完成后,将处理时间之前的数据，状态置为1
     * <desc/>
     * @param  handlerTime  处理时间转String
     * @return 更新个数
     * @author Biao.R
     * @createDate 2018/2/7
     */
    Integer updateCreateTimeBefore(@Param("handlerTime") String handlerTime,@Param("updateTime") Date updateTime);

    /**
     * <desc>
     *      查出大于允许同步时间且没有被同步过的数据
     * <desc/>
     *
     * @author Juguang.S
     * @createDate 2019/07/06
     */
    List<SmartCardFaceTimePullInfoPO> getAllowSyncData();

    /**
     * <desc>
     *      修改当前日期前一天的同步状态
     * <desc/>
     *
     * @author Juguang.S
     * @createDate 2019/07/15
     */
    void updateExpiredSyncData();
}
